Testear Path Variables

Descripcion

Como testear las variables que pasamos como parte de la URL, las Path Variables.

Pagina en la que se explica

Código

Para establecer una Path Variable en nuestros test lo hacemos de la siguiente manera, añadimos el siguiente código dentro del configureTestingModule:

providers: [
    {
      provide: ActivatedRoute,
      useValue: {
        snapshot: {
          paramMap: {
            get: () => 'hofes',
          },
        },
      },
    },
  ]

Esto funcionará si solo tenemos una Path variable, el siguiente código muesra un ejemplo de como se testearía, (en este caso el test daría error ya que se está comparando "hofes" con "2")

import { TestBed } from '@angular/core/testing';
import { ActivatedRoute } from '@angular/router';
import { RouterTestingModule } from '@angular/router/testing';
import { ComponentFixture } from '@angular/core/testing';
import { AppComponent } from './app.component';

describe('AppComponent', () => {
  let component: AppComponent;
  let fixture: ComponentFixture<AppComponent>;

  beforeEach(async () => {
    await TestBed.configureTestingModule({
      imports: [RouterTestingModule],
      declarations: [AppComponent],
      providers: [
        {
          provide: ActivatedRoute,
          useValue: {
            snapshot: {
              paramMap: {
                get: () => 'hofes',
              },
            },
          },
        },
      ],
    }).compileComponents();

    fixture = TestBed.createComponent(AppComponent);
    component = fixture.componentInstance;
  });

  it(`check Path Variable`, () => {
    component.ngOnInit();
    expect(component.name).toEqual('2');
  });
});
Tags

Test | PathVariables | Jasmine